package com.muse.genericity;

import java.util.ArrayList;
import java.util.List;

/**
 * 使用类型通配符可以解决：List<?> list
 */
public class TypeWildcard2 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        print(list);

        List<Integer> list2 = new ArrayList<>();
        list2.add(111);
        list2.add(222);
        print(list2);
    }

    public static void print(List<?> list) {
        // 因为无法确定集合的元素类型，所以不能向集合中添加元素，会报编译错误
//        list.add(list.get(0));
//        list.add(1);
//        list.add(new Object());
//        list.add("ccc");
        list.add(null); // 唯一例外的是可以添加null
        
        for (Object obj : list) 
            System.out.println(obj);
    }
}
